#ifndef SerialDebugger_H
#define SerialDebugger_H
enum DebuggerColorTypeDef
{
    DBG_COLOR_BLACK = 0,
    DBG_COLOR_RED = 1,
    DBG_COLOR_GREEN = 2,
    DBG_COLOR_YELLOW = 3,
    DBG_COLOR_BLUE = 4,
    DBG_COLOR_MAGENTA = 5,
    DBG_COLOR_CYAN = 6
};

enum DebuggerBlodTypeDef
{
    DBG_BLOD_TRUE  = 0x00000010,
    DBG_BLOD_FALSE = 0x00000000,
};

enum DebuggerFakeTypeDef
{
    DBG_FAKE_TRUE  = 0x00000020,
    DBG_FAKE_FALSE = 0x00000000,
};

enum DebuggerUnderlineTypeDef
{
    DBG_UNDERLINE_TRUE  = 0x00000040,
    DBG_UNDERLINE_FALSE = 0x00000000,
};

enum DebuggerFlashTypeDef
{
    DBG_FLASH_TRUE  = 0x00000080,
    DBG_FLASH_FALSE = 0x00000000,
};

enum DebuggerInverseTypeDef
{
    DBG_INVERSE_TRUE  = 0x00000100,
    DBG_INVERSE_FALSE = 0x00000000,
};

enum DebuggerHideTypeDef
{
    DBG_HIDE_TRUE  = 0x00000200,
    DBG_HIDE_FALSE = 0x00000000,
};

#define DBG_CFG_TEXT_MAX_LENGTH 256
typedef unsigned int debug_attr_t;
typedef char * debug_content_t;

typedef struct pattern_matcher
{
    const char * key;
    const char * description;
    debug_attr_t style_attr;
}pattern_matcher_t;

int ConsolePrint(debug_content_t content, debug_attr_t attributes);
#endif